package com.jdj.framework.dao.mybatis.provider.impl;

import com.jdj.framework.dao.mybatis.entity.BaseEntity;
import com.jdj.framework.dao.mybatis.entity.EntityPropertyDescriptor;
import com.jdj.framework.dao.mybatis.provider.InsertSqlProvider;
import com.jdj.framework.dao.mybatis.utils.EntityUtil;



/**
 * @author caijinbang
 * @date 2019-04-14 13:24
 */
public class InsertSqlProviderImpl implements InsertSqlProvider {

    public static final String CREATE_TS = "createTs";

    /**
     * 添加名字和值的sql
     */
    @Override
    public <Entity extends BaseEntity> void appendNameSqlAndValueSql(StringBuffer intoNameSql, StringBuffer valueSql, Entity entity) {
        // 版本字段 字段
        EntityPropertyDescriptor versionPropertyDescriptor = EntityUtil.getPropertyDescriptorByFieldName(
            entity.getClass(), EntityUtil.getVersionFileName(entity.getClass()));

        //追加 name sql
        if (versionPropertyDescriptor != null && intoNameSql.indexOf(versionPropertyDescriptor.getColumnName()) < 0) {
            intoNameSql.append(',').append(versionPropertyDescriptor.getColumnName());
        }
        //追加 value sql
        if (versionPropertyDescriptor != null && valueSql.indexOf(versionPropertyDescriptor.getFieldName()) < 0) {
            valueSql.append(',').append("1");
        }
    }
}
